{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "from __future__ import absolute_import, division, print_function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline \n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting ../mnist-data/train-images-idx3-ubyte.gz\n",
      "Extracting ../mnist-data/train-labels-idx1-ubyte.gz\n",
      "Extracting ../mnist-data/t10k-images-idx3-ubyte.gz\n",
      "Extracting ../mnist-data/t10k-labels-idx1-ubyte.gz\n"
     ]
    }
   ],
   "source": [
    "from tensorflow.examples.tutorials.mnist import input_data\n",
    "mnist = input_data.read_data_sets(\"../mnist-data/\", one_hot=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(55000, 784)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mnist.train.images.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABLUAAACPCAYAAAAMa+ngAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzsvVlsZGmaHXYuyQjGvi9kkEwuuVRVT7WMqRrB1gCCBMzD\njP2kJxslC5Zg+MWwAaEeBMNAA2pLhi1IkNsQYAEeNCTLkJSAAD14BFg9gC3J3TYsjbq72jM11V2Z\nyTUiyNj3fbt+yDpf/fcmySSTjGBE5H+ACzK5BG/Gd//tfOc7n2GaJjQ0NDQ0NDQ0NDQ0NDQ0NDQ0\nNBYJKw99AxoaGhoaGhoaGhoaGhoaGhoaGreFJrU0NDQ0NDQ0NDQ0NDQ0NDQ0NBYOmtTS0NDQ0NDQ\n0NDQ0NDQ0NDQ0Fg4aFJLQ0NDQ0NDQ0NDQ0NDQ0NDQ2PhoEktDQ0NDQ0NDQ0NDQ0NDQ0NDY2Fgya1\nNDQ0NDQ0NDQ0NDQ0NDQ0NDQWDprU0tDQ0NDQ0NDQ0NDQ0NDQ0NBYOGhSS0NDQ0NDQ0NDQ0NDQ0ND\nQ0Nj4aBJLQ0NDQ0NDQ0NDQ0NDQ0NDQ2NhYMmtTQ0NDQ0NDQ0NDQ0NDQ0NDQ0Fg5TI7UMw/gvDMM4\nNgyjaxjGvzYM409O629pzA46rssJHdflhI7r8kLHdjmh47qc0HFdTui4Li90bJcTOq7Li6mQWoZh\n/EcA/jaAvwrg1wH8fwB+3zCM2DT+nsZsoOO6nNBxXU7ouC4vdGyXEzquywkd1+WEjuvyQsd2OaHj\nutwwTNO8/xc1jH8N4N+YpvmXv/m3ASAN4O+Ypvk37/0PaswEOq7LCR3X5YSO6/JCx3Y5oeO6nNBx\nXU7ouC4vdGyXEzquy421+35BwzAcAD4F8N/xa6ZpmoZh/B8A/tQlPx8F8NsATgD07vt+NG4FF4A9\nAL9vmmZZ/YaO60Lj3uL6ze/o2M4HdFyXE1fGFdBz8YJDr7HLCT0XLyd0XJcTeo1dTui4Li+ujS1x\n76QWgBiAVQB529fzAD645Od/G8A/msJ9aLw7/mMA/9j2NR3Xxcd9xBXQsZ036LguJy6LK6Dn4mWA\nXmOXE3ouXk7ouC4n9Bq7nNBxXV5cFVsA0yG1roIB4LJaxxMA+If/8B/id3/3d/GDH/zgzn/o888/\nv/Pr3MdrLNq9/PKXv8Rf+At/AfgmJjeEjusDv86M4yqv8+u//uv44Q9/eIuXvByL9F7O071MK673\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111306940>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15,5))\n",
    "for i in list(range(10)):\n",
    "    plt.subplot(1, 10, i+1)\n",
    "    pixels = mnist.test.images[i]\n",
    "    pixels = pixels.reshape((28, 28))\n",
    "    plt.imshow(pixels, cmap='gray_r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.models import Model\n",
    "from keras.layers import Input, Dense, Activation\n",
    "from keras.layers import Dropout, Flatten, Reshape, merge\n",
    "from keras.layers import Convolution2D, MaxPooling2D, AveragePooling2D\n",
    "from keras.layers import BatchNormalization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "from  functools import reduce\n",
    "\n",
    "def print_layers(model):\n",
    "    for l in model.layers:\n",
    "        print(l.name, l.output_shape, [reduce(lambda x, y: x*y, w.shape) for w in l.get_weights()])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "def BNConv(nb_filter, nb_row, nb_col, subsample=(1, 1), border_mode=\"same\"):\n",
    "    def f(input):\n",
    "        conv = Convolution2D(nb_filter=nb_filter, nb_row=nb_row, nb_col=nb_col, subsample=subsample,\n",
    "                      border_mode=border_mode, activation=\"relu\", init=\"he_normal\")(input)\n",
    "        return BatchNormalization()(conv)\n",
    "    return f"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "def inception_naive_module(m=1):\n",
    "    def f(input):\n",
    "\n",
    "        # Tower A\n",
    "        conv_a = BNConv(32*m, 1, 1)(input)\n",
    "\n",
    "        # Tower B\n",
    "        conv_b = BNConv(32*m, 3, 3)(input)\n",
    "\n",
    "        # Tower C\n",
    "        conv_c = BNConv(16*m, 5, 5)(input)\n",
    "\n",
    "        # Tower D\n",
    "        pool_d = MaxPooling2D(pool_size=(3, 3), strides=(1, 1), border_mode=\"same\")(input)\n",
    "        \n",
    "        return merge([conv_a, conv_b, conv_c, pool_d], mode='concat', concat_axis=3)\n",
    "\n",
    "    return f"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "def inception_dimred_module(m=1):\n",
    "    def f(input):\n",
    "\n",
    "        # Tower A\n",
    "        conv_a = BNConv(32*m, 1, 1)(input)\n",
    "\n",
    "        # Tower B\n",
    "        conv_b = BNConv(16*m, 1, 1)(input)\n",
    "        conv_b = BNConv(32*m, 3, 3)(conv_b)\n",
    "\n",
    "        # Tower C\n",
    "        conv_c = BNConv(4*m, 1, 1)(input)\n",
    "        conv_c = BNConv(16*m, 5, 5)(conv_c)\n",
    "\n",
    "        # Tower D\n",
    "        # max pooling followed by compression \n",
    "        pool_d = MaxPooling2D(pool_size=(3, 3), strides=(1, 1), border_mode=\"same\")(input)\n",
    "        conv_d = BNConv(16*m, 1, 1)(pool_d)\n",
    "        \n",
    "        return merge([conv_a, conv_b, conv_c, conv_d], mode='concat', concat_axis=3)\n",
    "\n",
    "    return f"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "def inception(version='v2'):\n",
    "    #select inception module\n",
    "    if version=='v2' :\n",
    "        inception_module = inception_dimred_module\n",
    "    else: \n",
    "        # naive version, big filter banks, \n",
    "        # stacking = too many params!\n",
    "        inception_module = inception_naive_module\n",
    "        \n",
    "    \n",
    "    #input in the right shape, tensorflow ordered\n",
    "    _in = Input(shape=(784,))\n",
    "    reshape_1 = Reshape((28,28,1))(_in)\n",
    "    \n",
    "    # go to 32 channels\n",
    "    conv_0 = BNConv(32, 3, 3)(reshape_1)\n",
    "    conv_0 = BNConv(32, 3, 3)(conv_0)\n",
    "    pool_0 = MaxPooling2D((2, 2))(conv_0)\n",
    "    \n",
    "    # apply inception network (input: 14x14x32, output channels:96)\n",
    "    module_1 = inception_module()(pool_0)\n",
    "    \n",
    "    # pool to 7x7x96\n",
    "    pool_1 = MaxPooling2D((2, 2))(module_1)\n",
    "\n",
    "    # apply inception network (input: 7x7x96, output channels:192)\n",
    "    module_2 = inception_module(m=2)(pool_1)\n",
    "    \n",
    "    # pool to: 1x1x96 and flatten\n",
    "    x = AveragePooling2D((7, 7))(module_2)\n",
    "    x = Flatten()(x)\n",
    "    x = Dropout(0.4)(x)\n",
    "    \n",
    "    # dense layer and normalization\n",
    "    fc = Dense(128, activation='relu')(x)\n",
    "    fc = BatchNormalization()(fc)\n",
    "    \n",
    "    _out = Dense(10, activation='softmax')(fc)\n",
    "    model = Model(_in, _out)\n",
    "    \n",
    "    return model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "### Inception mini model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "input_1 (None, 784) []\n",
      "reshape_1 (None, 28, 28, 1) []\n",
      "convolution2d_1 (None, 28, 28, 32) [288, 32]\n",
      "batchnormalization_1 (None, 28, 28, 32) [32, 32, 32, 32]\n",
      "convolution2d_2 (None, 28, 28, 32) [9216, 32]\n",
      "batchnormalization_2 (None, 28, 28, 32) [32, 32, 32, 32]\n",
      "maxpooling2d_1 (None, 14, 14, 32) []\n",
      "convolution2d_4 (None, 14, 14, 16) [512, 16]\n",
      "convolution2d_6 (None, 14, 14, 4) [128, 4]\n",
      "batchnormalization_4 (None, 14, 14, 16) [16, 16, 16, 16]\n",
      "batchnormalization_6 (None, 14, 14, 4) [4, 4, 4, 4]\n",
      "maxpooling2d_2 (None, 14, 14, 32) []\n",
      "convolution2d_3 (None, 14, 14, 32) [1024, 32]\n",
      "convolution2d_5 (None, 14, 14, 32) [4608, 32]\n",
      "convolution2d_7 (None, 14, 14, 16) [1600, 16]\n",
      "convolution2d_8 (None, 14, 14, 16) [512, 16]\n",
      "batchnormalization_3 (None, 14, 14, 32) [32, 32, 32, 32]\n",
      "batchnormalization_5 (None, 14, 14, 32) [32, 32, 32, 32]\n",
      "batchnormalization_7 (None, 14, 14, 16) [16, 16, 16, 16]\n",
      "batchnormalization_8 (None, 14, 14, 16) [16, 16, 16, 16]\n",
      "merge_1 (None, 14, 14, 96) []\n",
      "maxpooling2d_3 (None, 7, 7, 96) []\n",
      "convolution2d_10 (None, 7, 7, 32) [3072, 32]\n",
      "convolution2d_12 (None, 7, 7, 8) [768, 8]\n",
      "batchnormalization_10 (None, 7, 7, 32) [32, 32, 32, 32]\n",
      "batchnormalization_12 (None, 7, 7, 8) [8, 8, 8, 8]\n",
      "maxpooling2d_4 (None, 7, 7, 96) []\n",
      "convolution2d_9 (None, 7, 7, 64) [6144, 64]\n",
      "convolution2d_11 (None, 7, 7, 64) [18432, 64]\n",
      "convolution2d_13 (None, 7, 7, 32) [6400, 32]\n",
      "convolution2d_14 (None, 7, 7, 32) [3072, 32]\n",
      "batchnormalization_9 (None, 7, 7, 64) [64, 64, 64, 64]\n",
      "batchnormalization_11 (None, 7, 7, 64) [64, 64, 64, 64]\n",
      "batchnormalization_13 (None, 7, 7, 32) [32, 32, 32, 32]\n",
      "batchnormalization_14 (None, 7, 7, 32) [32, 32, 32, 32]\n",
      "merge_2 (None, 7, 7, 192) []\n",
      "averagepooling2d_1 (None, 1, 1, 192) []\n",
      "flatten_1 (None, 192) []\n",
      "dropout_1 (None, 192) []\n",
      "dense_1 (None, 128) [24576, 128]\n",
      "batchnormalization_15 (None, 128) [128, 128, 128, 128]\n",
      "dense_2 (None, 10) [1280, 10]\n"
     ]
    }
   ],
   "source": [
    "# loosely adapted from https://arxiv.org/pdf/1409.4842v1.pdf\n",
    "\n",
    "model = inception()\n",
    "print_layers(model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 55000 samples, validate on 10000 samples\n",
      "Epoch 1/10\n",
      "55000/55000 [==============================] - 301s - loss: 0.1732 - acc: 0.9461 - val_loss: 0.9663 - val_acc: 0.7623\n",
      "Epoch 2/10\n",
      "55000/55000 [==============================] - 300s - loss: 0.0661 - acc: 0.9795 - val_loss: 0.2275 - val_acc: 0.9370\n",
      "Epoch 3/10\n",
      "55000/55000 [==============================] - 294s - loss: 0.0521 - acc: 0.9837 - val_loss: 0.0562 - val_acc: 0.9833\n",
      "Epoch 4/10\n",
      "55000/55000 [==============================] - 296s - loss: 0.0464 - acc: 0.9859 - val_loss: 0.0484 - val_acc: 0.9838\n",
      "Epoch 5/10\n",
      "55000/55000 [==============================] - 42906s - loss: 0.0395 - acc: 0.9878 - val_loss: 0.0454 - val_acc: 0.9863\n",
      "Epoch 6/10\n",
      "55000/55000 [==============================] - 299s - loss: 0.0371 - acc: 0.9885 - val_loss: 0.0543 - val_acc: 0.9833\n",
      "Epoch 7/10\n",
      "55000/55000 [==============================] - 284s - loss: 0.0330 - acc: 0.9893 - val_loss: 0.0354 - val_acc: 0.9898\n",
      "Epoch 8/10\n",
      "55000/55000 [==============================] - 283s - loss: 0.0311 - acc: 0.9901 - val_loss: 0.0619 - val_acc: 0.9816\n",
      "Epoch 9/10\n",
      "55000/55000 [==============================] - 279s - loss: 0.0313 - acc: 0.9897 - val_loss: 0.0324 - val_acc: 0.9900\n",
      "Epoch 10/10\n",
      "55000/55000 [==============================] - 278s - loss: 0.0288 - acc: 0.9907 - val_loss: 0.0522 - val_acc: 0.9842\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x11e82bef0>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# https://arxiv.org/pdf/1409.4842v1.pdf\n",
    "\n",
    "from keras.optimizers import Adam\n",
    "model.compile(loss='categorical_crossentropy', optimizer=Adam(lr=0.01), metrics=[\"accuracy\"])\n",
    "\n",
    "model.fit(mnist.train.images, mnist.train.labels,\n",
    "          batch_size=128, nb_epoch=10, verbose=1, \n",
    "          validation_data=(mnist.test.images, mnist.test.labels))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 55000 samples, validate on 10000 samples\n",
      "Epoch 1/10\n",
      "55000/55000 [==============================] - 279s - loss: 0.0295 - acc: 0.9903 - val_loss: 0.0424 - val_acc: 0.9873\n",
      "Epoch 2/10\n",
      "55000/55000 [==============================] - 287s - loss: 0.0282 - acc: 0.9908 - val_loss: 0.0631 - val_acc: 0.9802\n",
      "Epoch 3/10\n",
      "55000/55000 [==============================] - 289s - loss: 0.0239 - acc: 0.9923 - val_loss: 0.0351 - val_acc: 0.9889\n",
      "Epoch 4/10\n",
      "55000/55000 [==============================] - 290s - loss: 0.0236 - acc: 0.9929 - val_loss: 0.0702 - val_acc: 0.9805\n",
      "Epoch 5/10\n",
      "55000/55000 [==============================] - 294s - loss: 0.0228 - acc: 0.9930 - val_loss: 0.0308 - val_acc: 0.9907\n",
      "Epoch 6/10\n",
      "55000/55000 [==============================] - 299s - loss: 0.0232 - acc: 0.9928 - val_loss: 0.0807 - val_acc: 0.9772\n",
      "Epoch 7/10\n",
      "55000/55000 [==============================] - 297s - loss: 0.0222 - acc: 0.9931 - val_loss: 0.0494 - val_acc: 0.9880\n",
      "Epoch 8/10\n",
      "55000/55000 [==============================] - 295s - loss: 0.0203 - acc: 0.9935 - val_loss: 0.0285 - val_acc: 0.9916\n",
      "Epoch 9/10\n",
      "55000/55000 [==============================] - 289s - loss: 0.0208 - acc: 0.9931 - val_loss: 0.0270 - val_acc: 0.9909\n",
      "Epoch 10/10\n",
      "55000/55000 [==============================] - 309s - loss: 0.0184 - acc: 0.9944 - val_loss: 0.0304 - val_acc: 0.9910\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x11bd3fe10>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(mnist.train.images, mnist.train.labels,\n",
    "          batch_size=128, nb_epoch=10, verbose=1, \n",
    "          validation_data=(mnist.test.images, mnist.test.labels))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 55000 samples, validate on 10000 samples\n",
      "Epoch 1/10\n",
      "55000/55000 [==============================] - 300s - loss: 0.0144 - acc: 0.9955 - val_loss: 0.0558 - val_acc: 0.9876\n",
      "Epoch 2/10\n",
      "55000/55000 [==============================] - 303s - loss: 0.0120 - acc: 0.9962 - val_loss: 0.0382 - val_acc: 0.9879\n",
      "Epoch 3/10\n",
      "55000/55000 [==============================] - 299s - loss: 0.0122 - acc: 0.9960 - val_loss: 0.0600 - val_acc: 0.9847\n",
      "Epoch 4/10\n",
      "55000/55000 [==============================] - 15912s - loss: 0.0120 - acc: 0.9961 - val_loss: 0.0401 - val_acc: 0.9902\n",
      "Epoch 5/10\n",
      "55000/55000 [==============================] - 20254s - loss: 0.0108 - acc: 0.9965 - val_loss: 0.0293 - val_acc: 0.9931\n",
      "Epoch 6/10\n",
      "55000/55000 [==============================] - 217578s - loss: 0.0101 - acc: 0.9965 - val_loss: 0.0325 - val_acc: 0.9925\n",
      "Epoch 7/10\n",
      "55000/55000 [==============================] - 38210s - loss: 0.0113 - acc: 0.9963 - val_loss: 0.0379 - val_acc: 0.9901\n",
      "Epoch 8/10\n",
      "21632/55000 [==========>...................] - ETA: 162s - loss: 0.0118 - acc: 0.9957"
     ]
    }
   ],
   "source": [
    "model.fit(mnist.train.images, mnist.train.labels,\n",
    "          batch_size=128, nb_epoch=10, verbose=1, \n",
    "          validation_data=(mnist.test.images, mnist.test.labels))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
